<!DOCTYPE html>
<html lang="en">
	<head>
		<meta charset="utf-8" />
		<base href="../../../" />
		<script src="page.js"></script>
		<link type="text/css" rel="stylesheet" href="page.css" />
	</head>
	<body>
		[page:Material] &rarr;

		<h1>[name]</h1>

		<p class="desc">
			[name] is internally used for implementing shadow mapping with [page:PointLight]s.<br/><br/>

			Can also be used to customize the shadow casting of an object by assigning an instance of [name] to [page:Object3D.customDistanceMaterial].
			The following examples demonstrates this approach in order to ensure transparent parts of objects do no cast shadows.
		</p>

		<h2>Examples</h2>

		<p>
			[example:webgl_shadowmap_pointlight WebGL / shadowmap / pointlight]
		</p>

		<script>

		// iOS iframe auto-resize workaround

		if ( /(iPad|iPhone|iPod)/g.test( navigator.userAgent ) ) {

			const scene = document.getElementById( 'scene' );

			scene.style.width = getComputedStyle( scene ).width;
			scene.style.height = getComputedStyle( scene ).height;
			scene.setAttribute( 'scrolling', 'no' );

		}

		</script>

		<h2>Constructor</h2>

		<h3>[name]( [param:Object parameters] )</h3>
		<p>
			[page:Object parameters] - (optional) an object with one or more properties defining the material's appearance.
			Any property of the material (including any property inherited from [page:Material]) can be passed in here.
		</p>

		<h2>Properties</h2>
		<p>See the base [page:Material] class for common properties.</p>

		<h3>[property:Texture alphaMap]</h3>
		<p>The alpha map is a grayscale texture that controls the opacity across the surface
			(black: fully transparent; white: fully opaque). Default is null.<br /><br />

			Only the color of the texture is used, ignoring the alpha channel if one exists.
			For RGB and RGBA textures, the [page:WebGLRenderer WebGL] renderer will use the
			green channel when sampling this texture due to the extra bit of precision provided
			for green in DXT-compressed and uncompressed RGB 565 formats. Luminance-only and
			luminance/alpha textures will also still work as expected.
		</p>

		<h3>[property:Texture displacementMap]</h3>
		<p>
			The displacement map affects the position of the mesh's vertices. Unlike other maps
			which only affect the light and shade of the material the displaced vertices can cast shadows,
			block other objects, and otherwise act as real geometry. The displacement texture is
			an image where the value of each pixel (white being the highest) is mapped against,
			and repositions, the vertices of the mesh.
		</p>

		<h3>[property:Float displacementScale]</h3>
		<p>
			How much the displacement map affects the mesh (where black is no displacement,
			and white is maximum displacement). Without a displacement map set, this value is not applied.
			 Default is 1.
		</p>

		<h3>[property:Float displacementBias]</h3>
		<p>
			The offset of the displacement map's values on the mesh's vertices.
			Without a displacement map set, this value is not applied. Default is 0.
		</p>

		<h3>[property:Float farDistance]</h3>
		<p>
			The far value of the point light's internal shadow camera.
		</p>

		<h3>[property:Boolean fog]</h3>
		<p>Whether the material is affected by fog. Default is *false*.</p>

		<h3>[property:Texture map]</h3>
		<p>The color map. Default is  null.</p>

		<h3>[property:Float nearDistance]</h3>
		<p>
			The near value of the point light's internal shadow camera.
		</p>

		<h3>[property:Vector3 referencePosition]</h3>
		<p>
			The position of the point light in world space.
		</p>

		<h2>Methods</h2>
		<p>See the base [page:Material] class for common methods.</p>


		<h2>Source</h2>

		<p>
			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
		</p>
	</body>
</html>
